<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>MLBlog - 万物生长</title><meta name="keywords" content="ML"><meta name="author" content="Jiang Minglong"><meta name="copyright" content="Jiang Minglong"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#f7f9fe"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-touch-fullscreen" content="yes"><meta name="apple-mobile-web-app-title" content="MLBlog"><meta name="application-name" content="MLBlog"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="#f7f9fe"><meta name="description" content="小破站">
<meta property="og:type" content="website">
<meta property="og:title" content="MLBlog">
<meta property="og:url" content="https://zhywjml.gitee.io/myblog/index.html">
<meta property="og:site_name" content="MLBlog">
<meta property="og:description" content="小破站">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://bu.dusays.com/2023/04/27/64496e511b09c.jpg">
<meta property="article:author" content="Jiang Minglong">
<meta property="article:tag" content="ML">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://bu.dusays.com/2023/04/27/64496e511b09c.jpg"><link rel="shortcut icon" href="/myblog/img/favicon.ico"><link rel="canonical" href="https://zhywjml.gitee.io/myblog/"><link rel="preconnect" href="//npm.elemecdn.com"/><meta name="google-site-verification" content="xxx"/><meta name="baidu-site-verification" content="code-xxx"/><meta name="msvalidate.01" content="xxx"/><link rel="stylesheet" href="/myblog/css/index.css"><link rel="stylesheet" href="https://npm.elemecdn.com/node-snackbar@0.1.16/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://npm.elemecdn.com/@fancyapps/ui@4.0.31/dist/fancybox.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/myblog/',
  friends_vue_info: undefined,
  navMusic: true,
  changeMainColorPost: true,
  algolia: undefined,
  localSearch: {"path":"/myblog/search.xml","preload":false,"languages":{"hits_empty":"找不到您查询的内容：${query}"}},
  translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"简","rightMenuMsgToTraditionalChinese":"转为繁体","rightMenuMsgToSimplifiedChinese":"转为简体"},
  noticeOutdate: {"limitDay":365,"position":"top","messagePrev":"It has been","messageNext":"days since the last update, the content of the article may be outdated."},
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":330},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#3b70fc","bgDark":"#1f1f1f","position":"top-center"},
  source: {
    justifiedGallery: {
      js: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.min.js',
      css: 'https://npm.elemecdn.com/flickr-justified-gallery@2.1.2/dist/fjGallery.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: true,
  isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: 'MLBlog',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2023-12-10 19:37:38'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
    win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
      const link = document.createElement('link')
      link.rel = 'stylesheet'
      link.href = url
      if (id) link.id = id
      link.onerror = reject
      link.onload = link.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        link.onload = link.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(link)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#18171d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#f7f9fe')
        }
      }
      const t = saveToLocal.get('theme')
    
          const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
          const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
          const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
          const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified

          if (t === undefined) {
            if (isLightMode) activateLightMode()
            else if (isDarkMode) activateDarkMode()
            else if (isNotSpecified || hasNoSupport) {
              const now = new Date()
              const hour = now.getHours()
              const isNight = hour <= 6 || hour >= 18
              isNight ? activateDarkMode() : activateLightMode()
            }
            window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
              if (saveToLocal.get('theme') === undefined) {
                e.matches ? activateDarkMode() : activateLightMode()
              }
            })
          } else if (t === 'light') activateLightMode()
          else activateDarkMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/myblog/atom.xml" title="MLBlog" type="application/atom+xml">
</head><body data-type="anzhiyu"><div id="web_bg"></div><div id="an_music_bg"></div><div id="loading-box" onclick="document.getElementById(&quot;loading-box&quot;).classList.add(&quot;loaded&quot;)"><div class="loading-bg"><img class="loading-img nolazyload" alt="加载头像" src=""/><div class="loading-image-dot"></div><div id="loading-percentage">0%</div></div></div><script>const loadingPercentage = document.getElementById("loading-percentage");
let loadingPercentageTimer = setInterval(function() {
  var progressBar = document.querySelector(".pace-progress");
  if (!progressBar) return
  var currentValue = progressBar.getAttribute("data-progress-text");
  if (currentValue !== loadingPercentage.textContent) {
    loadingPercentage.textContent = currentValue;
    if (currentValue === "100%") {
      clearInterval(loadingPercentageTimer);
    }
  }
}, 100);
const preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
    Pace.restart()
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")
  }
}
window.addEventListener('load',()=> { preloader.endLoading() })

if (true) {
  document.addEventListener('pjax:send', () => { preloader.initLoading() })
  document.addEventListener('pjax:complete', () => { preloader.endLoading() })
}</script><link rel="stylesheet" href="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/progress_bar/progress_bar.css"/><script async="async" src="https://npm.elemecdn.com/pace-js@1.2.4/pace.min.js" data-pace-options="{ &quot;restartOnRequestAfter&quot;:false,&quot;eventLag&quot;:false}"></script><div id="web_box"><div id="web_container"><div id="menu-mask"></div><div class="page" id="body-wrap"><header class="not-top-img" id="page-header"><nav id="nav"><div id="nav-group"><span id="blog_name"><div class="back-home-button"><i class="anzhiyufont anzhiyu-icon-grip-vertical"></i><div class="back-menu-list-groups"><div class="back-menu-list-group"><div class="back-menu-list-title">网页</div><div class="back-menu-list"><a class="back-menu-item" href="https://hujing.fit/" title="胡同学博客" target="_blank"><img class="back-menu-item-icon" src= "" data-lazy-src="https://hujing.fit/wp-content/uploads/2023/01/444.png" alt="胡同学博客"/><span class="back-menu-item-text">胡同学博客</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">网页</div><div class="back-menu-list"><a class="back-menu-item" href="http://zhywjml.hpnu.cn/" title="奇犀网盘" target="_blank"><img class="back-menu-item-icon" src= "" data-lazy-src="https://ts4.cn.mm.bing.net/th?id=ODLS.d6abbc3b-3073-49ac-ae73-b46c50e0ca9f&amp;qlt=100&amp;pcl=fffffa&amp;o=6&amp;pid=1.2" alt="奇犀网盘"/><span class="back-menu-item-text">奇犀网盘</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">网页</div><div class="back-menu-list"><a class="back-menu-item" href="http://siyuannote.iuqaq.com/" title="雨思笔记————基于siyuan Docker版本" target="_blank"><img class="back-menu-item-icon" src= "" data-lazy-src="https://b3log.org/siyuan/static/logo_.png" alt="雨思笔记————基于siyuan Docker版本"/><span class="back-menu-item-text">雨思笔记————基于siyuan Docker版本</span></a></div></div></div></div><a id="site-name" href="/myblog/" accesskey="h"><div class="title">MLBlog</div><i class="anzhiyufont anzhiyu-icon-house-chimney"></i></a></span><div class="mask-name-container"><div id="name-container"><a id="page-name" href="javascript:anzhiyu.scrollToDest(0, 500)">PAGE_NAME</a></div></div><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 文章</span></a><ul class="menus_item_child" style="left:17px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/categories/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-shapes"></use></svg><span> 分类</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 友链</span></a><ul class="menus_item_child" style="left:17px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/link/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-link"></use></svg><span> 友人帐</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 我的</span></a><ul class="menus_item_child" style="left:17px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/music/?id=1708664797&amp;server=tencent"><span> 音乐馆</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 关于</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/about/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-zhifeiji"></use></svg><span> 关于本人</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/myblog/essay/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-lightbulb"></use></svg><span> 闲言碎语</span></a></li><li><a class="site-page child faa-parent animated-hover" href="javascript:toRandomPost()"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-shoe-prints1"></use></svg><span> 随便逛逛</span></a></li></ul></div></div></div><div id="nav-right"><div class="nav-button only-home" id="travellings_button" title="随机前往一个开往项目网站"><a class="site-page" onclick="anzhiyu.totraveling()" title="随机前往一个开往项目网站" href="javascript:void(0);" rel="external nofollow" data-pjax-state="external"><i class="anzhiyufont anzhiyu-icon-train"></i></a></div><div class="nav-button" id="randomPost_button"><a class="site-page" onclick="toRandomPost()" title="随机前往一个文章" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-dice"></i></a></div><div class="nav-button" id="search-button"><a class="site-page social-icon search" href="javascript:void(0);" title="搜索🔍" accesskey="s"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span> 搜索</span></a></div><input id="center-console" type="checkbox"/><label class="widget" for="center-console" title="中控台" onclick="anzhiyu.switchConsole();"><i class="left"></i><i class="widget center"></i><i class="widget right"></i></label><div id="console"><div class="console-card-group-reward"><ul class="reward-all console-card"><li class="reward-item"><a href="https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/qrcode-weichat.pn" target="_blank"><img class="post-qr-code-img" alt="wechat" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/qrcode-weichat.pn"/></a><div class="post-qr-code-desc">wechat</div></li><li class="reward-item"><a href="https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/qrcode-alipay.pn" target="_blank"><img class="post-qr-code-img" alt="alipay" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/qrcode-alipay.pn"/></a><div class="post-qr-code-desc">alipay</div></li></ul></div><div class="console-card-group"><div class="console-card-group-left"><div class="console-card" id="card-newest-comments"><div class="card-content"><div class="author-content-item-tips">互动</div><span class="author-content-item-title"> <span>最新评论</span></span></div><div class="aside-list"><span>正在加载中...</span></div></div></div><div class="console-card-group-right"><div class="console-card tags"><div class="card-content"><div class="author-content-item-tips">兴趣点</div><span class="author-content-item-title">寻找你感兴趣的领域</span></div></div><div class="console-card history"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-box-archiv"></i><span>文章</span></div><div class="card-archives"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/12/"><span class="card-archive-list-date">十二月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">3</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/10/"><span class="card-archive-list-date">十月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/08/"><span class="card-archive-list-date">八月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">8</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/07/"><span class="card-archive-list-date">七月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">17</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/06/"><span class="card-archive-list-date">六月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">3</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/05/"><span class="card-archive-list-date">五月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li></ul></div><hr/></div></div></div><div class="button-group"><div class="console-btn-item"><a class="darkmode_switchbutton" onclick="anzhiyu.switchDarkMode()" title="显示模式切换" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-moon"></i></a></div><div class="console-btn-item" id="consoleHideAside" onclick="anzhiyu.hideAsideBtn()" title="边栏显示控制"><a class="asideSwitch"><i class="anzhiyufont anzhiyu-icon-arrows-left-right"></i></a></div><div class="console-btn-item on" id="consoleCommentBarrage" onclick="anzhiyu.switchCommentBarrage()" title="热评开关"><a class="commentBarrage"><i class="anzhiyufont anzhiyu-icon-message"></i></a></div><div class="console-btn-item" id="consoleMusic" onclick="anzhiyu.musicToggle()" title="音乐开关"><a class="music-switch"><i class="anzhiyufont anzhiyu-icon-music"></i></a></div><div class="console-btn-item" id="consoleKeyboard" onclick="anzhiyu.keyboardToggle()" title="快捷键开关"><a class="keyboard-switch"><i class="anzhiyufont anzhiyu-icon-keyboard"></i></a></div></div><div class="console-mask" onclick="anzhiyu.hideConsole()" href="javascript:void(0);"></div></div><div class="nav-button" id="nav-totop"><a class="totopbtn" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i><span id="percent" onclick="anzhiyu.scrollToDest(0,500)">0</span></a></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-bars"></i></a></div></div></div></nav></header><div class="bbTimeList container" id="bbTimeList"><i class="anzhiyufont anzhiyu-icon-jike bber-logo fontbold" onclick="pjax.loadUrl(&quot;/essay/&quot;)" title="即刻短文" aria-hidden="true"></i><div class="swiper-container swiper-no-swiping essay_bar_swiper_container" id="bbtalk" tabindex="-1"><div class="swiper-wrapper" id="bber-talk" onclick="pjax.loadUrl(&quot;/essay/&quot;)"><div class="li-style swiper-slide">之后博客将要时用到的工具</div><div class="li-style swiper-slide">经历了好久，终于加入了搜索功能🤣</div><div class="li-style swiper-slide">还是敲代码</div><div class="li-style swiper-slide">敲代码, 耶✌️</div><div class="li-style swiper-slide">搜索🔍支持缩略图显示啦（默认获取文章内容的第一张图片）</div><div class="li-style swiper-slide">遇见彩虹🌈吃定彩虹 [图片]</div><div class="li-style swiper-slide">歌曲推荐</div></div></div><i class="bber-gotobb anzhiyufont anzhiyu-icon-circle-arrow-right" onclick="pjax.loadUrl(&quot;/essay/&quot;)" title="查看全文"></i></div><script src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/swiper/swiper.min.js"></script><link rel="stylesheet" href="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/swiper/swiper.min.css" onload="this.media='all'"><div id="home_top"><div class="swiper_container_card" style="height: auto;width: 100%"><div id="bannerGroup"><div id="random-banner"><div class="banners-title"><div class="banners-title-big">不见退路</div><div class="banners-title-big">才见出路</div><div class="banners-title-small">MLBLOG</div></div><div id="skills-tags-group-all"><div class="tags-group-wrapper"><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Java" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1184e9.jpg" size="60px"></div><div class="tags-group-icon" style="background: #57b6e6"><img class="no-lightbox" title="Docker" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b0f0abe.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4082c3"><img class="no-lightbox" title="Photoshop" src= "" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c240e.png" size="60px"></div><div class="tags-group-icon" style="background: #333"><img class="no-lightbox" title="Node" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.1.1/img/svg/node-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #2e3a41"><img class="no-lightbox" title="Webpack" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b68026c.png" size="60px"></div><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Pinia" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/pinia-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Python" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1230f7.png" size="60px"></div><div class="tags-group-icon" style="background: #937df7"><img class="no-lightbox" title="Vite" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/vite-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4499e4"><img class="no-lightbox" title="Flutter" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1055c2.png" size="60px"></div><div class="tags-group-icon" style="background: #b8f0ae"><img class="no-lightbox" title="Vue" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b6788bd.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #222"><img class="no-lightbox" title="React" src= "" data-lazy-src="" size="60px"></div><div class="tags-group-icon" style="background: #2c51db"><img class="no-lightbox" title="CSS3" src= "" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c251e.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #f7cb4f"><img class="no-lightbox" title="JS" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b121f02.png" size="60px"></div><div class="tags-group-icon" style="background: #e9572b"><img class="no-lightbox" title="HTML" src= "" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c241c.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #df5b40"><img class="no-lightbox" title="Git" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b10ccdd.webp" size="60px"></div><div class="tags-group-icon" style="background: #e65164"><img class="no-lightbox" title="Apifox" src= "" data-lazy-src="https://bu.dusays.com/2022/11/19/6378d6458c6b6.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Java" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1184e9.jpg" size="60px"></div><div class="tags-group-icon" style="background: #57b6e6"><img class="no-lightbox" title="Docker" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b0f0abe.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4082c3"><img class="no-lightbox" title="Photoshop" src= "" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c240e.png" size="60px"></div><div class="tags-group-icon" style="background: #333"><img class="no-lightbox" title="Node" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.1.1/img/svg/node-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #2e3a41"><img class="no-lightbox" title="Webpack" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b68026c.png" size="60px"></div><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Pinia" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/pinia-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #fff"><img class="no-lightbox" title="Python" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1230f7.png" size="60px"></div><div class="tags-group-icon" style="background: #937df7"><img class="no-lightbox" title="Vite" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.8/img/svg/vite-logo.svg" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #4499e4"><img class="no-lightbox" title="Flutter" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b1055c2.png" size="60px"></div><div class="tags-group-icon" style="background: #b8f0ae"><img class="no-lightbox" title="Vue" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b6788bd.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #222"><img class="no-lightbox" title="React" src= "" data-lazy-src="" size="60px"></div><div class="tags-group-icon" style="background: #2c51db"><img class="no-lightbox" title="CSS3" src= "" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c251e.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #f7cb4f"><img class="no-lightbox" title="JS" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b121f02.png" size="60px"></div><div class="tags-group-icon" style="background: #e9572b"><img class="no-lightbox" title="HTML" src= "" data-lazy-src="https://bu.dusays.com/2022/12/15/639aa3a5c241c.png" size="60px"></div></div><div class="tags-group-icon-pair"><div class="tags-group-icon" style="background: #df5b40"><img class="no-lightbox" title="Git" src= "" data-lazy-src="https://bu.dusays.com/2023/04/09/643293b10ccdd.webp" size="60px"></div><div class="tags-group-icon" style="background: #e65164"><img class="no-lightbox" title="Apifox" src= "" data-lazy-src="https://bu.dusays.com/2022/11/19/6378d6458c6b6.png" size="60px"></div></div></div></div><a id="random-hover" href="javascript:toRandomPost()"><i class="anzhiyufont anzhiyu-icon-paper-plane" style="margin-left:10px"></i><div style="margin-left:10px">随便逛逛<i class="anzhiyufont anzhiyu-icon-arrow-right" style="margin-left:10px"></i></div></a></div><div class="categoryGroup"><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-blue)"><a class="categoryButton blue" onclick="pjax.loadUrl(&quot;/categories/前端开发/&quot;);" href="javascript:void(0);"><span class="categoryButtonText">前端</span><i class="anzhiyufont anzhiyu-icon-dove"></i></a></div><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-red)"><a class="categoryButton red" onclick="pjax.loadUrl(&quot;/categories/大学生涯/&quot;);" href="javascript:void(0);"><span class="categoryButtonText">大学</span><i class="anzhiyufont anzhiyu-icon-fire"></i></a></div><div class="categoryItem" style="box-shadow:var(--anzhiyu-shadow-green)"><a class="categoryButton green" onclick="pjax.loadUrl(&quot;/categories/生活日常/&quot;);" href="javascript:void(0);"><span class="categoryButtonText">生活</span><i class="anzhiyufont anzhiyu-icon-book"></i></a></div></div></div><div class="topGroup"><div class="recent-post-item"><div class="post_cover left_radius"><a href="2023/12/09/--树莓派配置以及安装镜像记事_(Duplicated_2023-12-09_163811)/" title="树莓派配置以及安装镜像记事"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://picdl.sunbangyan.cn/2023/12/09/3efcbff62f0877dada251f0899a4065f.jpeg" alt="" src= "" data-lazy-src="https://picdl.sunbangyan.cn/2023/12/09/3efcbff62f0877dada251f0899a4065f.jpeg"></a></div><div class="recent-post-info"><a class="article-title" href="2023/12/09/--树莓派配置以及安装镜像记事_(Duplicated_2023-12-09_163811)/" title="树莓派配置以及安装镜像记事">树莓派配置以及安装镜像记事</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="2023/05/06/1-1课程简介/" title="1-1课程简介"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://img1.baidu.com/it/u=878976056,703665895&amp;fm=253&amp;fmt=auto&amp;app=138&amp;f=JPEG?w=641&amp;h=378" alt="" src= "" data-lazy-src="https://img1.baidu.com/it/u=878976056,703665895&amp;fm=253&amp;fmt=auto&amp;app=138&amp;f=JPEG?w=641&amp;h=378"></a></div><div class="recent-post-info"><a class="article-title" href="2023/05/06/1-1课程简介/" title="1-1课程简介">1-1课程简介</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="2023/12/08/--电池技术发展与潜在隐患整理_(Duplicated_2023-12-08_213636)/" title="锂电池技术发展与潜在隐患整理"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FVjVfM0otUXktcEFoM21zV19TaHpYb0JQdGZhRHpLcHlJTDdJNXc2YUxUTlZnP2U9cjlHSkVR.jpg" alt="" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FVjVfM0otUXktcEFoM21zV19TaHpYb0JQdGZhRHpLcHlJTDdJNXc2YUxUTlZnP2U9cjlHSkVR.jpg"></a></div><div class="recent-post-info"><a class="article-title" href="2023/12/08/--电池技术发展与潜在隐患整理_(Duplicated_2023-12-08_213636)/" title="锂电池技术发展与潜在隐患整理">锂电池技术发展与潜在隐患整理</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="2023/05/06/1-3单片机及开发板介绍/" title="1-3单片机及开发板介绍"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fb36327e7-4e08-4546-871a-0b4ce675ba0a%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&amp;refer=http%3A%2F%2Fsafe-img.xhscdn.com&amp;app=2002&amp;size=f9999,10000&amp;q=a80&amp;n=0&amp;g=0n&amp;fmt=auto?sec=1688984322&amp;t=59e1eab708c7324120639f170eb5e61f" alt="" src= "" data-lazy-src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fb36327e7-4e08-4546-871a-0b4ce675ba0a%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&amp;refer=http%3A%2F%2Fsafe-img.xhscdn.com&amp;app=2002&amp;size=f9999,10000&amp;q=a80&amp;n=0&amp;g=0n&amp;fmt=auto?sec=1688984322&amp;t=59e1eab708c7324120639f170eb5e61f"></a></div><div class="recent-post-info"><a class="article-title" href="2023/05/06/1-3单片机及开发板介绍/" title="1-3单片机及开发板介绍">1-3单片机及开发板介绍</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="2023/07/24/1.1 UNIX发展历史与发行版本/" title="1.1 UNIX发展历史与发行版本"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://i.imgs.ovh/2023/10/03/Vzagl.jpeg" alt="" src= "" data-lazy-src="https://i.imgs.ovh/2023/10/03/Vzagl.jpeg"></a></div><div class="recent-post-info"><a class="article-title" href="2023/07/24/1.1 UNIX发展历史与发行版本/" title="1.1 UNIX发展历史与发行版本">1.1 UNIX发展历史与发行版本</a></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="2023/05/06/1-2开发工具介绍及软件安装/" title="1-2开发工具介绍及软件安装"><span class="recent-post-top-text">荐</span><img class="post_bg" onerror="https://p2.itc.cn/images01/20211205/ee8a24535fcc4fcba72505a57bc70706.jpeg" alt="" src= "" data-lazy-src="https://p2.itc.cn/images01/20211205/ee8a24535fcc4fcba72505a57bc70706.jpeg"></a></div><div class="recent-post-info"><a class="article-title" href="2023/05/06/1-2开发工具介绍及软件安装/" title="1-2开发工具介绍及软件安装">1-2开发工具介绍及软件安装</a></div></div><a class="todayCard" id="todayCard" href="https://zhywjml.gitee.io/myblog/2023/05/06/1-1%E8%AF%BE%E7%A8%8B%E7%AE%80%E4%BB%8B/" style="z-index: 1;"><div class="todayCard-info"><div class="todayCard-tips">万物可爱</div><div class="todayCard-title">万物生长</div></div><div class="todayCard-cover" style="background: url(https://i.imgs.ovh/2023/10/03/VUlge.jpeg) no-repeat center /cover"></div><div class="banner-button-group"><div class="banner-button" onclick="event.stopPropagation();event.preventDefault();anzhiyu.hideTodayCard();"><i class="anzhiyufont anzhiyu-icon-arrow-circle-right"></i><span class="banner-button-text">更多推荐</span></div></div></a></div><link rel="stylesheet"></div></div><link rel="stylesheet" onload="this.media='all'"><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div id="categoryBar"><div class="category-bar" id="category-bar"><div id="catalog-bar"><div id="catalog-list"><div class="catalog-list-item" id="首页"><a href="/">首页</a></div></div><div class="category-bar-next" id="category-bar-next" onclick="anzhiyu.scrollCategoryBarToRight()"><i class="anzhiyufont anzhiyu-icon-angle-double-right"></i></div><a class="catalog-more" href="/categories/">更多</a></div></div></div><div class="recent-post-item lastestpost-item"><a class="unvisited-post" href="/myblog/2023/12/10/%E7%A8%80%E5%A5%87%E7%9A%84%E9%95%9C%E5%83%8F%E5%92%8CMS-DOS%E4%BB%A5%E5%8F%8AWindows3.0%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB%20(Duplicated%202023-12-09%20230052)/" title="稀奇的OS/2镜像和MS-DOS以及Windows3.0软件分享" style="left: 95px;">未读</a><div class="post_cover left"><a href="/myblog/2023/12/10/%E7%A8%80%E5%A5%87%E7%9A%84%E9%95%9C%E5%83%8F%E5%92%8CMS-DOS%E4%BB%A5%E5%8F%8AWindows3.0%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB%20(Duplicated%202023-12-09%20230052)/" title="稀奇的OS/2镜像和MS-DOS以及Windows3.0软件分享"><img class="post_bg" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FUXF0X2ZvRGtOUkhzZWo1X2k4VG5wMEI4cWxFNlpia2REZnpCZkwwSDdDdklnP2U9WkpJUjBL.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="稀奇的OS/2镜像和MS-DOS以及Windows3.0软件分享"></a></div><div class="recent-post-info"><span class="newPost">最新文章</span><a class="article-title" href="/myblog/2023/12/10/%E7%A8%80%E5%A5%87%E7%9A%84%E9%95%9C%E5%83%8F%E5%92%8CMS-DOS%E4%BB%A5%E5%8F%8AWindows3.0%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB%20(Duplicated%202023-12-09%20230052)/" title="稀奇的OS/2镜像和MS-DOS以及Windows3.0软件分享">稀奇的OS/2镜像和MS-DOS以及Windows3.0软件分享</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-12-10T11:34:47.638Z" title="发表于 2023-12-10 19:34:47">2023-12-10</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-10T11:36:54.246Z" title="更新于 2023-12-10 19:36:54">2023-12-10</time></span></div><div class="content">稀奇的OS&#x2F;2镜像和MS-DOS以及Windows3.0软件分享 (Duplicated 2023-12-09 23:00:52)收集自一些网站，具体是哪些，当时并未记录，不过，还是表示感谢
20世纪下载站 —— 部分镜像来源
系统镜像Windows Janus Beta 2 (3.1)
Windows 3.1的Beta 2版，在启动画面上注明的是”Final Beta Release”。
安装程序上看已经和正式版相差无几了。

betawiki.net&#x2F;wiki&#x2F;Window… 图片来源
​​
About —— 关于​​
启动界面​​
ControlPanel —— 控制面板​​
满满的历史感

控制面板功能包括了
Color —— 颜色
Fonts —— 字体
Ports —— 端口
Mouse —— 鼠标
Desktop —— 桌面
Sound —— 声音
Printers —— 打印机
International —— 国际
Keyboard —— 键盘
Date Time —— 日期 时间
386 Enhanced —— 386增强模式[^1]  ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/12/09/--%E6%A0%91%E8%8E%93%E6%B4%BE%E9%85%8D%E7%BD%AE%E4%BB%A5%E5%8F%8A%E5%AE%89%E8%A3%85%E9%95%9C%E5%83%8F%E8%AE%B0%E4%BA%8B_(Duplicated_2023-12-09_163811)/" title="树莓派配置以及安装镜像记事">未读</a><div class="post_cover right"><a href="/myblog/2023/12/09/--%E6%A0%91%E8%8E%93%E6%B4%BE%E9%85%8D%E7%BD%AE%E4%BB%A5%E5%8F%8A%E5%AE%89%E8%A3%85%E9%95%9C%E5%83%8F%E8%AE%B0%E4%BA%8B_(Duplicated_2023-12-09_163811)/" title="树莓派配置以及安装镜像记事"><img class="post_bg" src= "" data-lazy-src="https://picdl.sunbangyan.cn/2023/12/09/3efcbff62f0877dada251f0899a4065f.jpeg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="树莓派配置以及安装镜像记事"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/12/09/--%E6%A0%91%E8%8E%93%E6%B4%BE%E9%85%8D%E7%BD%AE%E4%BB%A5%E5%8F%8A%E5%AE%89%E8%A3%85%E9%95%9C%E5%83%8F%E8%AE%B0%E4%BA%8B_(Duplicated_2023-12-09_163811)/" title="树莓派配置以及安装镜像记事">树莓派配置以及安装镜像记事</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-12-09T09:21:56.900Z" title="发表于 2023-12-09 17:21:56">2023-12-09</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-09T09:31:14.993Z" title="更新于 2023-12-09 17:31:14">2023-12-09</time></span></div><div class="content">–树莓派配置以及安装镜像记事 (Duplicated 2023-12-09 16:38:11)琐事看到电赛以及未来可能需要使用到Linux嵌入式，主要涉及linux内核。决定买一下树莓派，用于学习。
本来是有一个orangepi5Plus的，性能更好，但是奈何资源很少，额，目前来看好像只有使用手册，对于学习可能阻力比较大，所以买了树莓派4b，对于学习过程中的一些存在的共性问题，在网上更方便去查找。
中间还计划有orangepi zero3，去群里看了一下，发现gpu驱动到现在还没有适配，也就是说全靠cpu编码处理，就如同舍近求远，本末倒置。还有一款orangepi 3b，吸引我的是可以运行官方适配的系统OrangePi（OH）—— 也就是OpenHarmony操作系统，以长远来看，还是不错的，可是就目前能力，学习需求以及生态来说，还不是时候。
加上树莓派5的推出，树莓派系列价格下降（dddd本来好贵的），最终考虑了树莓派4b。
​
OrangePi 5 Plus
​
树莓派4b
没注意OrangePi官网居然更新了 Orange Pi AIpro，官网说的是联合华为精心打造，建设人工智 ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/12/08/--%E7%94%B5%E6%B1%A0%E6%8A%80%E6%9C%AF%E5%8F%91%E5%B1%95%E4%B8%8E%E6%BD%9C%E5%9C%A8%E9%9A%90%E6%82%A3%E6%95%B4%E7%90%86_(Duplicated_2023-12-08_213636)/" title="锂电池技术发展与潜在隐患整理">未读</a><div class="post_cover left"><a href="/myblog/2023/12/08/--%E7%94%B5%E6%B1%A0%E6%8A%80%E6%9C%AF%E5%8F%91%E5%B1%95%E4%B8%8E%E6%BD%9C%E5%9C%A8%E9%9A%90%E6%82%A3%E6%95%B4%E7%90%86_(Duplicated_2023-12-08_213636)/" title="锂电池技术发展与潜在隐患整理"><img class="post_bg" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FVjVfM0otUXktcEFoM21zV19TaHpYb0JQdGZhRHpLcHlJTDdJNXc2YUxUTlZnP2U9cjlHSkVR.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="锂电池技术发展与潜在隐患整理"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/12/08/--%E7%94%B5%E6%B1%A0%E6%8A%80%E6%9C%AF%E5%8F%91%E5%B1%95%E4%B8%8E%E6%BD%9C%E5%9C%A8%E9%9A%90%E6%82%A3%E6%95%B4%E7%90%86_(Duplicated_2023-12-08_213636)/" title="锂电池技术发展与潜在隐患整理">锂电池技术发展与潜在隐患整理</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-12-08T15:02:39.947Z" title="发表于 2023-12-08 23:02:39">2023-12-08</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-08T15:11:25.782Z" title="更新于 2023-12-08 23:11:25">2023-12-08</time></span></div><div class="content">–锂电池技术发展与潜在隐患整理 (Duplicated 2023-12-08 21:36:36)前几天，在模电课上听到了关于电源的一些讲解，其中又涉及到电源存在的问题与隐患，于是，决定仔细阅读研究，写一篇汇总分析，对于参考有效的网址，将在文章最后统一注释。
锂电池分类什么？锂电池还有分类？！没错，是这样的
命名方式锂电池的常用命名方式主要有两种，一是以电池中正极元素来命名，二是以电池最核心的反应机理和特征来命名（如柔性电池、固态电池）。
因正极材料不同，锂离子电池主要分为：磷酸铁锂（LFP），镍酸锂（LNO），锰酸锂（LMO），钴酸锂（LCO），以及镍钴锰酸三元锂（NCM）、镍钴铝酸三元锂（NCA），负极材料主要采用石墨碳材料。
主要分类​
锂电池内部结构要想了解潜在隐患，首先要了解锂电池内部构造。
锂电池的4大组成要素 - 正极、负极、电解液、隔膜
锂电池大体可分为4个组成要素，这4大要素就是正极、负极、电解液、隔膜，是电池中不可或缺的存在，缺少其一，则电池无法发挥作用。
​
“正极”决定锂电池的容量和电压“锂离子”电池是通过锂的化学反应产生电的电池。
因此，锂必须进入，其进入的空间 ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/10/04/4.8%20%E5%85%B3%E6%9C%BA%E9%87%8D%E5%90%AF%E5%91%BD%E4%BB%A4/" title="4.8 关机重启命令">未读</a><div class="post_cover right"><a href="/myblog/2023/10/04/4.8%20%E5%85%B3%E6%9C%BA%E9%87%8D%E5%90%AF%E5%91%BD%E4%BB%A4/" title="4.8 关机重启命令"><img class="post_bg" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FZUExQmVET3pVRkJqX2NtdlVPWGxuMEIzWTZfeWhyaHJvU2VsR3FNdnhabWdRP2U9T0ZHZTdn.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="4.8 关机重启命令"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/10/04/4.8%20%E5%85%B3%E6%9C%BA%E9%87%8D%E5%90%AF%E5%91%BD%E4%BB%A4/" title="4.8 关机重启命令">4.8 关机重启命令</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-10-04T01:38:54.248Z" title="发表于 2023-10-04 09:38:54">2023-10-04</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-08T15:17:21.091Z" title="更新于 2023-12-08 23:17:21">2023-12-08</time></span></div><div class="content">4.8 关机重启命令shutdown命令
[root@localhost ~]# shutdown [选项] 时间​

选项：

​-c​：取消前一个关机命令——cancel

​-ከ​፡  关机

​-r​：重启——reboot

​shutdown -h now​

现在关机


其他关机命令
[root@localhost~]# halt​
[root@localhost ~]# poweroff​
[root@localhost ~]# init 0​

其他重启命令
[root@localhost~]# reboot​
[root@localhost ~]# init 6​

系统运行级别？
0 —— 关机

1 —— 单用户 —— 只启动核心程序，类似于windows安全模式

2 —— 不完全多用户，不含NFS服务[^1]完全多用户

3 —— 完全多用户

4 —— 未分配

5 —— 图形界面

6 —— 重启

​[root@localhost ~]# cat/etc/inittab​

#修改系统默认运行级别
id:3:initdefault:


​[root@ ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/10/03/%E5%8D%95%E7%89%87%E6%9C%BA%E7%BB%83%E4%B9%A01%20%E6%B5%81%E6%B0%B4%E7%81%AF%E6%93%8D%E4%BD%9C%E7%BB%83%E4%B9%A0/" title="单片机练习1 流水灯操作练习">未读</a><div class="post_cover left"><a href="/myblog/2023/10/03/%E5%8D%95%E7%89%87%E6%9C%BA%E7%BB%83%E4%B9%A01%20%E6%B5%81%E6%B0%B4%E7%81%AF%E6%93%8D%E4%BD%9C%E7%BB%83%E4%B9%A0/" title="单片机练习1 流水灯操作练习"><img class="post_bg" src= "" data-lazy-src="https://i.imgs.ovh/2023/10/03/VUKDt.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="单片机练习1 流水灯操作练习"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/10/03/%E5%8D%95%E7%89%87%E6%9C%BA%E7%BB%83%E4%B9%A01%20%E6%B5%81%E6%B0%B4%E7%81%AF%E6%93%8D%E4%BD%9C%E7%BB%83%E4%B9%A0/" title="单片机练习1 流水灯操作练习">单片机练习1 流水灯操作练习</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-10-03T08:20:52.388Z" title="发表于 2023-10-03 16:20:52">2023-10-03</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-10-03T08:23:41.655Z" title="更新于 2023-10-03 16:23:41">2023-10-03</time></span></div><div class="content">单片机练习1 流水灯操作练习今天早上一上午改来改去，最终学习完成，感觉流水灯差不多可以了（能看了）
以下是流水灯系列练习
以及我自己写的解答，额，如果有不对的地方还请指正
​​


练习11234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include &lt;reg52.H&gt;#include &lt;intrins.h&gt;sbit Led1=P0^0;sbit Led2=P0^1;sbit Led3=P0^2;sbit Led4=P0^3;sbit Led5=P0^4;sbit Led6=P0^5;sbit Led7=P0^6;sbit Led8=P0^7;sbit relay=P0^4; //继电器sbit buzzer=P0^6; //蜂鸣器//延时200ms函数void Delay200ms()		//@11.0592MHz&#123;	unsigned char data i, j, k;	_nop_();	_nop_() ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/10/03/4.7%20%E7%BD%91%E7%BB%9C%E5%91%BD%E4%BB%A4/" title="4.7 网络命令">未读</a><div class="post_cover right"><a href="/myblog/2023/10/03/4.7%20%E7%BD%91%E7%BB%9C%E5%91%BD%E4%BB%A4/" title="4.7 网络命令"><img class="post_bg" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FVy1RWmQxZi1CRkZobVNhVGRJN0F2SUJVTVlfdWtwbklpQ3pBZ0ZQV2o2bTl3P2U9enF3RmQw.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="4.7 网络命令"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/10/03/4.7%20%E7%BD%91%E7%BB%9C%E5%91%BD%E4%BB%A4/" title="4.7 网络命令">4.7 网络命令</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-10-03T08:08:36.434Z" title="发表于 2023-10-03 16:08:36">2023-10-03</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-08T15:18:31.528Z" title="更新于 2023-12-08 23:18:31">2023-12-08</time></span></div><div class="content">4.7 网络命令网络命令：write
指令名称：write​

指令所在路径：&#x2F;usr&#x2F;bin&#x2F;write

执行权限：所有用户语法：write &lt;用户名&gt;​功能描述：给用户发信息，以​Ctrl+D​保存结束

范例：

​# write linzhiling​



回车键换行！


网络命令：wall
指令名称：wall​

命令英文原意：write all

指令所在路径：&#x2F;usr&#x2F;bin&#x2F;wall

执行权限：所有用户

语法：wall [message]​

功能描述：发广播信息

范例：

​#wall ShenChao is a honest man！​



网络命令：ping
命令名称：ping​

命令所在路径：&#x2F;bin&#x2F;ping

执行权限：所有用户

语法：ping 选项 IP地址​  

​-c​ 指定发送次数


功能描述：测试网络连通性

范例：

​# ping 192.168.1.156​







网络命令：ifconfig
命令名称：ifconfig​
 ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/10/03/4.6%20%E5%8E%8B%E7%BC%A9%E8%A7%A3%E5%8E%8B%E5%91%BD%E4%BB%A4/" title="4.6 压缩管理命令">未读</a><div class="post_cover left"><a href="/myblog/2023/10/03/4.6%20%E5%8E%8B%E7%BC%A9%E8%A7%A3%E5%8E%8B%E5%91%BD%E4%BB%A4/" title="4.6 压缩管理命令"><img class="post_bg" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FZk1wVTJMbXVOaE1oLU1RWHF0RkNVMEJtN1NmekRzOUMtRVlLU0dzNldHT3N3P2U9ajcyWjM3.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="4.6 压缩管理命令"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/10/03/4.6%20%E5%8E%8B%E7%BC%A9%E8%A7%A3%E5%8E%8B%E5%91%BD%E4%BB%A4/" title="4.6 压缩管理命令">4.6 压缩管理命令</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-10-03T07:57:47.546Z" title="发表于 2023-10-03 15:57:47">2023-10-03</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-08T15:19:20.449Z" title="更新于 2023-12-08 23:19:20">2023-12-08</time></span></div><div class="content">4.6 压缩解压命令压缩解压命令：gzip
命令名称：gzip​
命令英文原意：GNUzip
命令所在路径：&#x2F;bin&#x2F;gzip
执行权限：所有用户
语法：gzip [文件]​
功能描述：压缩文件
压缩后文件格式：.gz​​



压缩解压命令：gunzip
命令名称：gunzip​

命令英文原意：GNUunzip

命令所在路径：&#x2F;bin&#x2F;gunzip

执行权限：所有用户

语法：gunzip [压缩文件]​

功能描述：解压缩.gz的压缩文件

范例：

​$ gunzip boduo.gz​



​​



压缩后不保留源文件
不可压缩目录，只能压缩文件

压缩解压命令：tar
命令名称：tar​

命令所在路径：&#x2F;bin&#x2F;tar

执行权限：所有用户

语法：tar 选项[-zcf] [压缩后文件名] [目录]​

​-c​ 打包
​-v​显示详细信息
​-f​ 指定文件名
​-Z​ 打包同时压缩


功能描述：打包目录

压缩后文件格式：**.tar.gz**

范例：  

​$ tar -zcf Japan. ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/10/03/4.5%20%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86%E5%91%BD%E4%BB%A4/" title="4.5 用户管理命令">未读</a><div class="post_cover right"><a href="/myblog/2023/10/03/4.5%20%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86%E5%91%BD%E4%BB%A4/" title="4.5 用户管理命令"><img class="post_bg" src= "" data-lazy-src="https://dlink.host/sharepoint/aHR0cHM6Ly9tZTM2NTktbXkuc2hhcmVwb2ludC5jb20vOmk6L2cvcGVyc29uYWwvMTBfbWUzNjU5X29ubWljcm9zb2Z0X2NvbS9FUW5wM3ZhdlRyNUZyN0JwcXhmVlVESUJEUUVXMzZ1XzY1SHRlLXIyRFdVN1NnP2U9NkRyb3Nm.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="4.5 用户管理命令"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/10/03/4.5%20%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86%E5%91%BD%E4%BB%A4/" title="4.5 用户管理命令">4.5 用户管理命令</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-10-03T07:41:10.259Z" title="发表于 2023-10-03 15:41:10">2023-10-03</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-12-08T15:20:14.910Z" title="更新于 2023-12-08 23:20:14">2023-12-08</time></span></div><div class="content">4.5 用户管理命令用户管理命令：useradd
命令名称：useradd​

命令所在路径：&#x2F;usr&#x2F;sbin&#x2F;useradd

执行权限：root

语法：useradd [用户名]​

功能描述：添加新用户

范例：

​$useradd yangmi​



用户管理命令：passwd
命令名称：passwd​

命令所在路径：&#x2F;usr&#x2F;bin&#x2F;passwd

执行权限：所有用户

语法：passwd [用户名]​

功能描述：设置用户密码

范例：

​$passwd yangmi​



更改用户密码：passwd [用户名]​
普通用户更改密码必须符合系统要求
​​
用户管理命令：who
命令名称：who

命令所在路径：&#x2F;usr&#x2F;bin&#x2F;who

执行权限：所有用户

语法：who​

功能描述：查看登录用户信息

范例：

​$who​


登陆用户名——登陆终端——登陆时间——登陆IP地址

tty——本地终端
pts——远程终端



​​
​​
用户管理命令：w
命令名称： ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/10/03/%E6%88%91%E7%9A%84%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%A5%E5%8F%8A%E7%9B%AE%E5%89%8D%E7%9A%84%E9%A1%B9%E7%9B%AE/" title="我的开发板以及目前的项目">未读</a><div class="post_cover left"><a href="/myblog/2023/10/03/%E6%88%91%E7%9A%84%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%A5%E5%8F%8A%E7%9B%AE%E5%89%8D%E7%9A%84%E9%A1%B9%E7%9B%AE/" title="我的开发板以及目前的项目"><img class="post_bg" src= "" data-lazy-src="https://i.imgs.ovh/2023/10/03/VzNWu.jpeg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="我的开发板以及目前的项目"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/10/03/%E6%88%91%E7%9A%84%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%A5%E5%8F%8A%E7%9B%AE%E5%89%8D%E7%9A%84%E9%A1%B9%E7%9B%AE/" title="我的开发板以及目前的项目">我的开发板以及目前的项目</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-10-03T07:36:15.880Z" title="发表于 2023-10-03 15:36:15">2023-10-03</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-10-04T02:02:05.995Z" title="更新于 2023-10-04 10:02:05">2023-10-04</time></span></div><div class="content">我的开发板以及目前的项目普中A2型号开发板stc89c53rc
​​


CT107D 开发板IAP15F2K61S2


开发板原理图​​​​​


www.123pan.com/s/k3CKVv-... —— 原理图链接
造车循迹小车


电机驱动.c文件 —— PWM调速1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include &lt;REGX52.H&gt;#include &quot;Timer0.h&quot;unsigned char Counter,Counter1;unsigned char Compare1,Compare2;/*************中断指示*************/void Timer0_Routine() interrupt 1 &#123;	TL0 = 0x9C;	TH0 = 0xFF;	Counter+ ...</div></div></div><div class="recent-post-item"><a class="unvisited-post" href="/myblog/2023/08/26/%E7%A9%BA%E9%97%B4%E4%BB%93%20%E2%80%94%E2%80%94%20%E6%95%B4%E7%90%86%E5%8F%91%E5%B8%83/" title="空间仓 —— 整理发布">未读</a><div class="post_cover right"><a href="/myblog/2023/08/26/%E7%A9%BA%E9%97%B4%E4%BB%93%20%E2%80%94%E2%80%94%20%E6%95%B4%E7%90%86%E5%8F%91%E5%B8%83/" title="空间仓 —— 整理发布"><img class="post_bg" src= "" data-lazy-src="https://i.imgs.ovh/2023/10/03/VU2iJ.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="空间仓 —— 整理发布"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2023/08/26/%E7%A9%BA%E9%97%B4%E4%BB%93%20%E2%80%94%E2%80%94%20%E6%95%B4%E7%90%86%E5%8F%91%E5%B8%83/" title="空间仓 —— 整理发布">空间仓 —— 整理发布</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="anzhiyufont anzhiyu-icon-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-08-26T12:45:39.940Z" title="发表于 2023-08-26 20:45:39">2023-08-26</time><span class="article-meta-separator"></span><i class="anzhiyufont anzhiyu-icon-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-10-03T07:29:46.762Z" title="更新于 2023-10-03 15:29:46">2023-10-03</time></span></div><div class="content">空间仓 —— 整理发布找了好久的方法，才实现这种折叠效果
以后学会了再自己写
网页主要分享收集到的 网页，软件，文章，资源
以链接形式提供，本博客内暂时停止更新，保持SpaceCollection本网页更新

网页地址
zhywjml.gitee.io&#x2F;spacecollect&#x2F;

​​
长这个样，要善于利用 Ctrl+F 搜索
至于怎么做的：workflowy+找到的一个处理脚本
‍
</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/myblog/page/2/#content-inner">2</a><span class="space">&hellip;</span><a class="page-number" href="/myblog/page/5/#content-inner">5</a><a class="extend next" rel="next" href="/myblog/page/2/#content-inner"><div class="pagination_tips_next">下页</div><i style="font-weight: inherit; font-size: 1rem;" class="anzhiyufont anzhiyu-icon-chevron-right fa-fw"></i></a><div class="toPageGroup"><input id="toPageText" oninput="value=value.replace(/[^0-9]/g,'')" maxlength="3" onkeyup="this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')" aria-label="toPage"><a id="toPageButton" onclick="anzhiyu.toPage()"><i class="anzhiyufont anzhiyu-icon-angles-right" style="font-weight: inherit; font-size: 1rem;"></i></a></div></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="author-info-top"> <div class="card-info-avatar"></div></div><div class="author-info__sayhi" id="author-info__sayhi"></div><h1 class="author-info__name">Jiang Minglong</h1><div class="author-info__description">小破站</div><div class="banner-button-group"><a class="banner-button" onclick="pjax.loadUrl(&quot;/aboout/&quot;)"><span class="banner-button-text">了解更多</span><i class="anzhiyufont anzhiyu-icon-arrow-circle-right" style="font-size: 1.5rem"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-bullhorn anzhiyu-shake"></i><span>公告</span></div><div class="announcement_content">欢迎来看我的博客鸭~</div></div><div class="sticky_layout"><div class="card-widget"><div class="card-archives"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/12/"><span class="card-archive-list-date">十二月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">3</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/10/"><span class="card-archive-list-date">十月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/08/"><span class="card-archive-list-date">八月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">8</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/07/"><span class="card-archive-list-date">七月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">17</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/06/"><span class="card-archive-list-date">六月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">3</span><span>篇</span></div></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2023/05/"><span class="card-archive-list-date">五月 2023</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">6</span><span>篇</span></div></a></li></ul></div><hr/><div class="card-webinfo"><div class="item-headline"><i class="anzhiyufont anzhiyu-icon-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">43</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2023-05-04T16:00:00.000Z"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-12-10T11:37:36.513Z"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-spin"></i></div></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2023 By Jiang Minglong</div><div id="workboard"><img class="workSituationImg boardsign" src= "" data-lazy-src="https://npm.elemecdn.com/anzhiyu-blog@2.0.4/img/badge/安知鱼-上班摸鱼中.svg" alt="距离月入25k也就还差一个大佬带我~" title="距离月入25k也就还差一个大佬带我~"/><div id="runtimeTextTip"></div></div></div></footer></div></div></div><div id="sidebar"><div id="sidebar-menus"><div class="avatar-img is-center"><img src= "" data-lazy-src="https://bu.dusays.com/2023/04/27/64496e511b09c.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/myblog/archives/" title="archive"><div class="headline">文章</div><div class="length-num">43</div></a><a href="/myblog/tags/" title="tag"><div class="headline">标签</div><div class="length-num">0</div></a><a href="/myblog/categories/" title="category"><div class="headline">分类</div><div class="length-num">0</div></a></div><div class="menus_items"><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 文章</span></a><ul class="menus_item_child" style="left:17px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/categories/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-shapes"></use></svg><span> 分类</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 友链</span></a><ul class="menus_item_child" style="left:17px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/link/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-link"></use></svg><span> 友人帐</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 我的</span></a><ul class="menus_item_child" style="left:17px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/music/?id=1708664797&amp;server=tencent"><span> 音乐馆</span></a></li></ul></div><div class="menus_item"><a class="site-page faa-parent animated-hover" href="javascript:void(0);"><span> 关于</span></a><ul class="menus_item_child" style="left:-79px;"><li><a class="site-page child faa-parent animated-hover" href="/myblog/about/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-zhifeiji"></use></svg><span> 关于本人</span></a></li><li><a class="site-page child faa-parent animated-hover" href="/myblog/essay/"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-lightbulb"></use></svg><span> 闲言碎语</span></a></li><li><a class="site-page child faa-parent animated-hover" href="javascript:toRandomPost()"><svg class="icon faa-tada" aria-hidden="true"><use xlink:href="#icon-shoe-prints1"></use></svg><span> 随便逛逛</span></a></li></ul></div></div></div></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">繁</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="anzhiyufont anzhiyu-icon-arrows-left-right"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="anzhiyufont anzhiyu-icon-gear"></i></button><button id="go-up" type="button" title="回到顶部"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><div id="nav-music"><a id="nav-music-hoverTips" onclick="anzhiyu.musicToggle()" accesskey="m">播放音乐</a><div id="console-music-bg"></div><meting-js id="8152976493" server="netease" type="playlist" mutex="true" preload="none" theme="var(--anzhiyu-main)" data-lrctype="0" order="random"></meting-js></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="anzhiyufont anzhiyu-icon-xmark"></i></button></nav><div class="is-center" id="loading-database"><i class="anzhiyufont anzhiyu-icon-spinner anzhiyu-pulse-icon"></i><span>  数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div id="rightMenu"><div class="rightMenu-group rightMenu-small"><div class="rightMenu-item" id="menu-backward"><i class="anzhiyufont anzhiyu-icon-arrow-left"></i></div><div class="rightMenu-item" id="menu-forward"><i class="anzhiyufont anzhiyu-icon-arrow-right"></i></div><div class="rightMenu-item" id="menu-refresh"><i class="anzhiyufont anzhiyu-icon-arrow-rotate-right" style="font-size: 1rem;"></i></div><div class="rightMenu-item" id="menu-top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></div></div><div class="rightMenu-group rightMenu-line rightMenuPlugin"><div class="rightMenu-item" id="menu-copytext"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制选中文本</span></div><div class="rightMenu-item" id="menu-pastetext"><i class="anzhiyufont anzhiyu-icon-paste"></i><span>粘贴文本</span></div><a class="rightMenu-item" id="menu-commenttext"><i class="anzhiyufont anzhiyu-icon-comment-medical"></i><span>引用到评论</span></a><div class="rightMenu-item" id="menu-newwindow"><i class="anzhiyufont anzhiyu-icon-window-restore"></i><span>新窗口打开</span></div><div class="rightMenu-item" id="menu-copylink"><i class="anzhiyufont anzhiyu-icon-link"></i><span>复制链接地址</span></div><div class="rightMenu-item" id="menu-copyimg"><i class="anzhiyufont anzhiyu-icon-images"></i><span>复制此图片</span></div><div class="rightMenu-item" id="menu-downloadimg"><i class="anzhiyufont anzhiyu-icon-download"></i><span>下载此图片</span></div><div class="rightMenu-item" id="menu-newwindowimg"><i class="anzhiyufont anzhiyu-icon-window-restore"></i><span>新窗口打开图片</span></div><div class="rightMenu-item" id="menu-search"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span>站内搜索</span></div><div class="rightMenu-item" id="menu-searchBaidu"><i class="anzhiyufont anzhiyu-icon-magnifying-glass"></i><span>百度搜索</span></div><div class="rightMenu-item" id="menu-music-toggle"><i class="anzhiyufont anzhiyu-icon-play"></i><span>播放音乐</span></div><div class="rightMenu-item" id="menu-music-back"><i class="anzhiyufont anzhiyu-icon-backward"></i><span>切换到上一首</span></div><div class="rightMenu-item" id="menu-music-forward"><i class="anzhiyufont anzhiyu-icon-forward"></i><span>切换到下一首</span></div><div class="rightMenu-item" id="menu-music-playlist" onclick="window.open(&quot;https://y.qq.com/n/ryqq/playlist/8802438608&quot;, &quot;_blank&quot;);" style="display: none;"><i class="anzhiyufont anzhiyu-icon-radio"></i><span>查看所有歌曲</span></div><div class="rightMenu-item" id="menu-music-copyMusicName"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制歌名</span></div></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item menu-link" id="menu-randomPost"><i class="anzhiyufont anzhiyu-icon-shuffle"></i><span>随便逛逛</span></a><a class="rightMenu-item menu-link" href="/categories/"><i class="anzhiyufont anzhiyu-icon-cube"></i><span>博客分类</span></a><a class="rightMenu-item menu-link" href="/tags/"><i class="anzhiyufont anzhiyu-icon-tags"></i><span>文章标签</span></a></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item" id="menu-copy" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-copy"></i><span>复制地址</span></a><a class="rightMenu-item" id="menu-commentBarrage" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-message"></i><span class="menu-commentBarrage-text">关闭热评</span></a><a class="rightMenu-item" id="menu-darkmode" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-circle-half-stroke"></i><span class="menu-darkmode-text">深色模式</span></a><a class="rightMenu-item" id="menu-translate" href="javascript:void(0);"><i class="anzhiyufont anzhiyu-icon-language"></i><span>轉為繁體</span></a></div></div><div id="rightmenu-mask"></div><div id="he-plugin-simple"></div><script>var WIDGET = {
  "CONFIG": {
    "modules": "0124",
    "background": "2",
    "tmpColor": "FFFFFF",
    "tmpSize": "16",
    "cityColor": "FFFFFF",
    "citySize": "16",
    "aqiColor": "E8D87B",
    "aqiSize": "16",
    "weatherIconSize": "24",
    "alertIconSize": "18",
    "padding": "10px 10px 10px 10px",
    "shadow": "0",
    "language": "auto",
    "borderRadius": "20",
    "fixed": "true",
    "vertical": "top",
    "horizontal": "left",
    "left": "20",
    "top": "7.1",
    "key": "df245676fb434a0691ead1c63341cd94"
  }
}
</script><link rel="stylesheet" href="https://widget.qweather.net/simple/static/css/he-simple.css?v=1.4.0"/><script src="https://widget.qweather.net/simple/static/js/he-simple.js?v=1.4.0"></script><div><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/utils.js"></script><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/main.js"></script><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/tw_cn.js"></script><script src="https://npm.elemecdn.com/@fancyapps/ui@4.0.31/dist/fancybox.umd.js"></script><script src="https://npm.elemecdn.com/instant.page@5.1.1/instantpage.js" type="module"></script><script src="https://npm.elemecdn.com/vanilla-lazyload@17.3.1/dist/lazyload.iife.min.js"></script><script src="https://npm.elemecdn.com/node-snackbar@0.1.16/dist/snackbar.min.js"></script><canvas id="universe"></canvas><script async src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/dark/dark.js"></script><script>// 消除控制台打印
var HoldLog = console.log;
console.log = function () {};
let now1 = new Date();
queueMicrotask(() => {
  const Log = function () {
    HoldLog.apply(console, arguments);
  }; //在恢复前输出日志
  const grt = new Date("05/05/2023 00:00:00"); //此处修改你的建站时间或者网站上线时间
  now1.setTime(now1.getTime() + 250);
  const days = (now1 - grt) / 1000 / 60 / 60 / 24;
  const dnum = Math.floor(days);
  const ascll = [
    `欢迎使用安知鱼!`,
    `生活明朗, 万物可爱`,
    `
        
       █████╗ ███╗   ██╗███████╗██╗  ██╗██╗██╗   ██╗██╗   ██╗
      ██╔══██╗████╗  ██║╚══███╔╝██║  ██║██║╚██╗ ██╔╝██║   ██║
      ███████║██╔██╗ ██║  ███╔╝ ███████║██║ ╚████╔╝ ██║   ██║
      ██╔══██║██║╚██╗██║ ███╔╝  ██╔══██║██║  ╚██╔╝  ██║   ██║
      ██║  ██║██║ ╚████║███████╗██║  ██║██║   ██║   ╚██████╔╝
      ╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝╚═╝   ╚═╝    ╚═════╝
        
        `,
    "已上线",
    dnum,
    "天",
    "©2023 By 安知鱼 1.4.0",
  ];
  const ascll2 = [`NCC2-036`, `调用前置摄像头拍照成功，识别为【小笨蛋】.`, `Photo captured: `, `🤪`];

  setTimeout(
    Log.bind(
      console,
      `\n%c${ascll[0]} %c ${ascll[1]} %c ${ascll[2]} %c${ascll[3]}%c ${ascll[4]}%c ${ascll[5]}\n\n%c ${ascll[6]}\n`,
      "color:#3b70fc",
      "",
      "color:#3b70fc",
      "color:#3b70fc",
      "",
      "color:#3b70fc",
      ""
    )
  );
  setTimeout(
    Log.bind(
      console,
      `%c ${ascll2[0]} %c ${ascll2[1]} %c \n${ascll2[2]} %c\n${ascll2[3]}\n`,
      "color:white; background-color:#4fd953",
      "",
      "",
      'background:url("https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/tinggge.gif") no-repeat;font-size:450%'
    )
  );

  setTimeout(Log.bind(console, "%c WELCOME %c 你好，小笨蛋.", "color:white; background-color:#4f90d9", ""));

  setTimeout(
    console.warn.bind(
      console,
      "%c ⚡ Powered by 安知鱼 %c 你正在访问 Jiang Minglong 的博客.",
      "color:white; background-color:#f0ad4e",
      ""
    )
  );

  setTimeout(Log.bind(console, "%c W23-12 %c 你已打开控制台.", "color:white; background-color:#4f90d9", ""));

  setTimeout(
    console.warn.bind(console, "%c S013-782 %c 你现在正处于监控中.", "color:white; background-color:#d9534f", "")
  );
});</script><script async src="/anzhiyu/random.js"></script><script async="async">(function () {
  var grt = new Date("05/05/2023 00:00:00"); //设置网站上线时间
  var now = new Date();
  var dnum;
  var hnum;
  var mnum;
  var snum;
  var nowHour;

  // 计算并更新天数、小时数、分钟数和秒数
  function updateTime() {
    now = new Date(); // 更新 now 的值
    nowHour = now.getHours(); // 更新 nowHour 的值
    var days = (now - grt) / 1000 / 60 / 60 / 24;
    dnum = Math.floor(days);
    var hours = (now - grt) / 1000 / 60 / 60 - 24 * dnum;
    hnum = Math.floor(hours);
    if (String(hnum).length == 1) {
      hnum = "0" + hnum;
    }
    var minutes = (now - grt) / 1000 / 60 - 24 * 60 * dnum - 60 * hnum;
    mnum = Math.floor(minutes);
    if (String(mnum).length == 1) {
      mnum = "0" + mnum;
    }
    var seconds = (now - grt) / 1000 - 24 * 60 * 60 * dnum - 60 * 60 * hnum - 60 * mnum;
    snum = Math.round(seconds);
    if (String(snum).length == 1) {
      snum = "0" + snum;
    }
  }

  // 更新网页中显示的网站运行时间
  function updateHtml() {
    const footer = document.getElementById("footer");
    if (!footer) return
    let currentTimeHtml = "";
    if (nowHour < 18 && nowHour >= 9) {
      // 如果是上班时间，默认就是"安知鱼-上班摸鱼中.svg"图片，不需要更改
      currentTimeHtml = `本站居然运行了 ${dnum} 天<span id='runtime'> ${hnum} 小时 ${mnum} 分 ${snum} 秒 </span><i class='anzhiyufont anzhiyu-icon-heartbeat' style='color:red'></i>`;
    } else {
      // 如果是下班时间，插入"安知鱼-下班啦.svg"图片
      let img = document.querySelector("#workboard .workSituationImg");
      img.src = "https://npm.elemecdn.com/anzhiyu-blog@2.0.4/img/badge/安知鱼-下班啦.svg";
      img.title = "下班了就该开开心心的玩耍，嘿嘿~";
      img.alt = "下班了就该开开心心的玩耍，嘿嘿~";

      currentTimeHtml = `本站居然运行了 ${dnum} 天<span id='runtime'> ${hnum} 小时 ${mnum} 分 ${snum} 秒 </span><i class='anzhiyufont anzhiyu-icon-heartbeat' style='color:red'></i>`;
    }

    if (document.getElementById("runtimeTextTip")) {
      document.getElementById("runtimeTextTip").innerHTML = currentTimeHtml;
    }
  }

  setInterval(() => {
    updateTime();
    updateHtml();
  }, 1000);
})();</script><script src="https://npm.elemecdn.com/hexo-theme-anzhiyu@1.4.0/source/js/search/local-search.js"></script><div class="js-pjax"><input type="hidden" name="page-type" id="page-type" value="anzhiyu"></div><script async data-pjax src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.1/bubble/bubble.js"></script><script>var visitorMail = "visitor@anheyu.com";</script><script>//动态标题
let leaveTitle = 'w(ﾟДﾟ)w 不要走！再看看嘛！';
let backTitle = '♪(^∇^*)欢迎肥来！';
let OriginTitile = document.title
let titleTime
document.addEventListener('visibilitychange', function () {
  if (document.hidden) {
    //离开当前页面时标签显示内容
    document.title = leaveTitle
    clearTimeout(titleTime)
  } else {
    //返回当前页面时标签显示内容
    document.title = backTitle + OriginTitile
    //两秒后变回正常标题
    titleTime = setTimeout(function () {
      document.title = OriginTitile
    }, 2000)
  }
})</script><script async data-pjax src="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/waterfall/waterfall.js"></script><script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/qrcodejs/1.0.0/qrcode.min.js"></script><script>// 初始化函数
let rm = {};

//禁止图片与超链接拖拽
let aElements = document.getElementsByTagName("a");
for (let i = 0; i < aElements.length; i++) {
  aElements[i].setAttribute("draggable", "false");
  let imgElements = aElements[i].getElementsByTagName("img");
  for (let j = 0; j < imgElements.length; j++) {
    imgElements[j].setAttribute("draggable", "false");
  }
}

// 显示菜单
rm.showRightMenu = function (isTrue, x = 0, y = 0) {
  console.info(x, y)
  let rightMenu = document.getElementById("rightMenu");
  rightMenu.style.top = x + "px";
  rightMenu.style.left = y + "px";
  if (isTrue) {
    rightMenu.style.display = "block";
    stopMaskScroll();
  } else {
    rightMenu.style.display = "none";
  }
};

// 隐藏菜单
rm.hideRightMenu = function () {
  rm.showRightMenu(false);
  let rightMenuMask = document.querySelector("#rightmenu-mask");
  rightMenuMask.style.display = "none";
};

// 尺寸
let rmWidth = document.getElementById("rightMenu").offsetWidth;
let rmHeight = document.getElementById("rightMenu").offsetHeight;

// 重新定义尺寸
rm.reloadrmSize = function () {
  rightMenu.style.visibility = "hidden";
  rightMenu.style.display = "block";
  // 获取宽度和高度
  rmWidth = document.getElementById("rightMenu").offsetWidth;
  rmHeight = document.getElementById("rightMenu").offsetHeight;
  rightMenu.style.visibility = "visible";
};

// 获取点击的href
let domhref = "";
let domImgSrc = "";
let globalEvent = null;

var oncontextmenuFunction = function (event) {
  if (document.body.clientWidth > 768) {
    let pageX = event.clientX + 10; //加10是为了防止显示时鼠标遮在菜单上
    let pageY = event.clientY;

    //其他额外菜单
    const $rightMenuOther = document.querySelector(".rightMenuOther");
    const $rightMenuPlugin = document.querySelector(".rightMenuPlugin");
    const $rightMenuCopyText = document.querySelector("#menu-copytext");
    const $rightMenuPasteText = document.querySelector("#menu-pastetext");
    const $rightMenuCommentText = document.querySelector("#menu-commenttext");
    const $rightMenuNewWindow = document.querySelector("#menu-newwindow");
    const $rightMenuNewWindowImg = document.querySelector("#menu-newwindowimg");
    const $rightMenuCopyLink = document.querySelector("#menu-copylink");
    const $rightMenuCopyImg = document.querySelector("#menu-copyimg");
    const $rightMenuDownloadImg = document.querySelector("#menu-downloadimg");
    const $rightMenuSearch = document.querySelector("#menu-search");
    const $rightMenuSearchBaidu = document.querySelector("#menu-searchBaidu");
    const $rightMenuMusicToggle = document.querySelector("#menu-music-toggle");
    const $rightMenuMusicBack = document.querySelector("#menu-music-back");
    const $rightMenuMusicForward = document.querySelector("#menu-music-forward");
    const $rightMenuMusicPlaylist = document.querySelector("#menu-music-playlist");
    const $rightMenuMusicCopyMusicName = document.querySelector("#menu-music-copyMusicName");

    let href = event.target.href;
    let imgsrc = event.target.currentSrc;

    // 判断模式 扩展模式为有事件
    let pluginMode = false;
    $rightMenuOther.style.display = "block";
    globalEvent = event;

    // 检查是否需要复制 是否有选中文本
    if (selectTextNow && window.getSelection()) {
      pluginMode = true;
      $rightMenuCopyText.style.display = "block";
      $rightMenuCommentText.style.display = "block";
      $rightMenuSearch.style.display = "block";
      $rightMenuSearchBaidu.style.display = "block";
    } else {
      $rightMenuCopyText.style.display = "none";
      $rightMenuCommentText.style.display = "none";
      $rightMenuSearchBaidu.style.display = "none";
      $rightMenuSearch.style.display = "none";
    }

    //检查是否右键点击了链接a标签
    if (href) {
      pluginMode = true;
      $rightMenuNewWindow.style.display = "block";
      $rightMenuCopyLink.style.display = "block";
      domhref = href;
    } else {
      $rightMenuNewWindow.style.display = "none";
      $rightMenuCopyLink.style.display = "none";
    }

    //检查是否需要复制图片
    if (imgsrc) {
      pluginMode = true;
      $rightMenuCopyImg.style.display = "block";
      $rightMenuDownloadImg.style.display = "block";
      $rightMenuNewWindowImg.style.display = "block";
      document.getElementById("rightMenu").style.width="12rem"
      domImgSrc = imgsrc;
    } else {
      $rightMenuCopyImg.style.display = "none";
      $rightMenuDownloadImg.style.display = "none";
      $rightMenuNewWindowImg.style.display = "none";
    }

    // 判断是否为输入框
    if (event.target.tagName.toLowerCase() === "input" || event.target.tagName.toLowerCase() === "textarea") {
      pluginMode = true;
      $rightMenuPasteText.style.display = "block";
    } else {
      $rightMenuPasteText.style.display = "none";
    }
    const navMusicEl = document.querySelector("#nav-music");
    //判断是否是音乐
    if (navMusicEl && navMusicEl.contains(event.target)) {
      pluginMode = true;
      $rightMenuMusicToggle.style.display = "block";
      $rightMenuMusicBack.style.display = "block";
      $rightMenuMusicForward.style.display = "block";
      $rightMenuMusicPlaylist.style.display = "block";
      $rightMenuMusicCopyMusicName.style.display = "block";
    } else {
      $rightMenuMusicToggle.style.display = "none";
      $rightMenuMusicBack.style.display = "none";
      $rightMenuMusicForward.style.display = "none";
      $rightMenuMusicPlaylist.style.display = "none";
      $rightMenuMusicCopyMusicName.style.display = "none";
    }

    // 如果不是扩展模式则隐藏扩展模块
    if (pluginMode) {
      $rightMenuOther.style.display = "none";
      $rightMenuPlugin.style.display = "block";
    } else {
      $rightMenuPlugin.style.display = "none";
    }

    rm.reloadrmSize();

    // 鼠标默认显示在鼠标右下方，当鼠标靠右或靠下时，将菜单显示在鼠标左方\上方
    if (pageX + rmWidth > window.innerWidth) {
      pageX -= rmWidth + 10;
    }
    if (pageY + rmHeight > window.innerHeight) {
      pageY -= pageY + rmHeight - window.innerHeight;
    }

    rm.showRightMenu(true, pageY, pageX);
    document.getElementById("rightmenu-mask").style.display = "flex";
    return false;
  }
};

// 监听右键初始化
window.oncontextmenu = oncontextmenuFunction

// 下载图片状态
rm.downloadimging = false;

// 复制图片到剪贴板
rm.writeClipImg = function (imgsrc) {
  console.log("按下复制");
  rm.hideRightMenu();
  anzhiyu.snackbarShow("正在下载中，请稍后", false, 10000);
  if (rm.downloadimging == false) {
    rm.downloadimging = true;
    setTimeout(function () {
      copyImage(imgsrc);
      anzhiyu.snackbarShow("复制成功！图片已添加盲水印，请遵守版权协议");
      rm.downloadimging = false;
    }, "10000");
  }
};

function imageToBlob(imageURL) {
  const img = new Image();
  const c = document.createElement("canvas");
  const ctx = c.getContext("2d");
  img.crossOrigin = "";
  img.src = imageURL;
  return new Promise(resolve => {
    img.onload = function () {
      c.width = this.naturalWidth;
      c.height = this.naturalHeight;
      ctx.drawImage(this, 0, 0);
      c.toBlob(
        blob => {
          // here the image is a blob
          resolve(blob);
        },
        "image/png",
        0.75
      );
    };
  });
}

async function copyImage(imageURL) {
  const blob = await imageToBlob(imageURL);
  const item = new ClipboardItem({ "image/png": blob });
  navigator.clipboard.write([item]);
}

rm.copyUrl = function (id) {
  const input = document.createElement("input"); // Create a new <input> element
  input.id = "copyVal"; // Set the id of the new element to "copyVal"
  document.body.appendChild(input); // Append the new element to the end of the <body> element
  
  const text = id;
  input.value = text;
  input.select();
  input.setSelectionRange(0, input.value.length);
  document.execCommand("copy");
  
  input.remove(); // Remove the <input> element from the DOM
};

function stopMaskScroll() {
  if (document.getElementById("rightmenu-mask")) {
    let xscroll = document.getElementById("rightmenu-mask");
    xscroll.addEventListener(
      "mousewheel",
      function (e) {
        //阻止浏览器默认方法
        rm.hideRightMenu();
        // e.preventDefault();
      },
      { passive: true }
    );
  }
  if (document.getElementById("rightMenu")) {
    let xscroll = document.getElementById("rightMenu");
    xscroll.addEventListener(
      "mousewheel",
      function (e) {
        //阻止浏览器默认方法
        rm.hideRightMenu();
        // e.preventDefault();
      },
      { passive: true }
    );
  }
}

rm.rightmenuCopyText = function (txt) {
  if (navigator.clipboard) {
    navigator.clipboard.writeText(txt);
  }
  rm.hideRightMenu();
};

rm.copyPageUrl = function (url) {
  if (!url) {
    url = window.location.href;
  }
  rm.copyUrl(url);
  anzhiyu.snackbarShow("复制本页链接地址成功", false, 2000);
  rm.hideRightMenu();
};

rm.sharePage = function () {
  var content = window.location.href;
  rm.copyUrl(url);
  anzhiyu.snackbarShow("复制本页链接地址成功", false, 2000);
  rm.hideRightMenu();
};

// 复制当前选中文本
var selectTextNow = "";
document.onmouseup = document.ondblclick = selceText;

function selceText() {
  var txt;
  if (document.selection) {
    txt = document.selection.createRange().text;
  } else {
    txt = window.getSelection().toString();
  }
  selectTextNow = txt !== "" ? txt : "";
}

// 读取剪切板
rm.readClipboard = function () {
  if (navigator.clipboard) {
    navigator.clipboard.readText().then(clipText => rm.insertAtCaret(globalEvent.target, clipText));
  }
};

// 粘贴文本到焦点
rm.insertAtCaret = function (elemt, value) {
  const startPos = elemt.selectionStart,
    endPos = elemt.selectionEnd;
  if (document.selection) {
    elemt.focus();
    var sel = document.selection.createRange();
    sel.text = value;
    elemt.focus();
  } else {
    if (startPos || startPos == "0") {
      var scrollTop = elemt.scrollTop;
      elemt.value = elemt.value.substring(0, startPos) + value + elemt.value.substring(endPos, elemt.value.length);
      elemt.focus();
      elemt.selectionStart = startPos + value.length;
      elemt.selectionEnd = startPos + value.length;
      elemt.scrollTop = scrollTop;
    } else {
      elemt.value += value;
      elemt.focus();
    }
  }
};

//粘贴文本
rm.pasteText = function () {
  const result = rm.readClipboard() || "";
  rm.hideRightMenu();
};

//引用到评论
rm.rightMenuCommentText = function (txt) {
  rm.hideRightMenu();
  const postCommentDom = document.getElementById("post-comment");
  var domTop = postCommentDom.offsetTop;
  window.scrollTo(0, domTop - 80);
  if (txt == "undefined" || txt == "null") txt = "好棒！";
  function setText() {
    setTimeout(() => {
      var input = document.getElementsByClassName("el-textarea__inner")[0];
      if (!input) setText();
      let evt = document.createEvent("HTMLEvents");
      evt.initEvent("input", true, true);
      let inputValue = replaceAll(txt, "\n", "\n> ");
      input.value = "> " + inputValue + "\n\n";
      input.dispatchEvent(evt);
      input.focus();
      input.setSelectionRange(-1, -1);
      if (document.getElementById("comment-tips")) {
        document.getElementById("comment-tips").classList.add("show");
      }
    }, 100);
  }
  setText();
};

//替换所有内容
function replaceAll(string, search, replace) {
  return string.split(search).join(replace);
}

// 百度搜索
rm.searchBaidu = function () {
  anzhiyu.snackbarShow("即将跳转到百度搜索", false, 2000);
  setTimeout(function () {
    window.open("https://www.baidu.com/s?wd=" + selectTextNow);
  }, "2000");
  rm.hideRightMenu();
};

//分享链接
rm.copyLink = function () {
  rm.rightmenuCopyText(domhref);
  anzhiyu.snackbarShow("已复制链接地址");
};

function addRightMenuClickEvent() {
  // 添加点击事件
  document.getElementById("menu-backward").addEventListener("click", function () {
  window.history.back();
    rm.hideRightMenu();
  });

  document.getElementById("menu-forward").addEventListener("click", function () {
    window.history.forward();
    rm.hideRightMenu();
  });

  document.getElementById("menu-refresh").addEventListener("click", function () {
    window.location.reload();
  });

  document.getElementById("menu-top").addEventListener("click", function () {
    anzhiyu.scrollToDest(0, 500);
    rm.hideRightMenu();
  });

  const menuLinks = document.querySelectorAll(".menu-link");
  menuLinks.forEach(function (link) {
    link.addEventListener("click", rm.hideRightMenu);
  });

  document.getElementById("menu-darkmode").addEventListener("click", anzhiyu.switchDarkMode);

  document.getElementById("menu-home") && document.getElementById("menu-home").addEventListener("click", function () {
    window.location.href = window.location.origin;
  });

  document.getElementById("menu-randomPost").addEventListener("click", function () {
    toRandomPost();
  });

  document.getElementById("menu-commentBarrage").addEventListener("click", anzhiyu.switchCommentBarrage);

  document.getElementById("rightmenu-mask").addEventListener("click", rm.hideRightMenu);

  document.getElementById("rightmenu-mask").addEventListener("contextmenu", function (event) {
    rm.hideRightMenu();
    event.preventDefault(); // Prevent the default context menu from appearing
  });

  document.getElementById("menu-copy").addEventListener("click", rm.copyPageUrl);

  document.getElementById("menu-pastetext").addEventListener("click", rm.pasteText);

  document.getElementById("menu-copytext").addEventListener("click", function () {
    rm.rightmenuCopyText(selectTextNow);
    anzhiyu.snackbarShow("复制成功，复制和转载请标注本文地址");
  });

  document.getElementById("menu-commenttext").addEventListener("click", function () {
    rm.rightMenuCommentText(selectTextNow);
  });

  document.getElementById("menu-newwindow").addEventListener("click", function () {
    window.open(domhref, "_blank");
    rm.hideRightMenu();
  });

  document.getElementById("menu-copylink").addEventListener("click", rm.copyLink);

  document.getElementById("menu-downloadimg").addEventListener("click", function () {
    anzhiyu.downloadImage(domImgSrc, "anzhiyu");
  });

  document.getElementById("menu-newwindowimg").addEventListener("click", function () {
    window.open(domImgSrc, "_blank");
    rm.hideRightMenu();
  });

  document.getElementById("menu-copyimg").addEventListener("click", function () {
    rm.writeClipImg(domImgSrc);
  });

  document.getElementById("menu-searchBaidu").addEventListener("click", rm.searchBaidu);

  //音乐
  document.getElementById("menu-music-toggle").addEventListener("click", anzhiyu.musicToggle);

  document.getElementById("menu-music-back").addEventListener("click", anzhiyu.musicSkipBack);

  document.getElementById("menu-music-forward").addEventListener("click", anzhiyu.musicSkipForward);

  document.getElementById("menu-music-copyMusicName").addEventListener("click", function () {
    rm.rightmenuCopyText(anzhiyu.musicGetName());
    anzhiyu.snackbarShow("复制歌曲名称成功", false, 3000);
  });

}

addRightMenuClickEvent();</script><script data-pjax>var themeColorMeta = document.querySelector('meta[name="theme-color"]');
var pageHeaderEl = document.getElementById("page-header");
var navMusicEl = document.getElementById("nav-music");
var consoleEl = document.getElementById("console");
// 已随机的歌曲
var selectRandomSong = [];
// 音乐默认声音大小
var musicVolume = 0.8;
// 是否切换了周杰伦音乐列表
var changeMusicListFlag = false;
// 当前默认播放列表
var defaultPlayMusicList = [];

document.getElementById("page-name").innerText = document.title.split(" | MLBlog")[0];
anzhiyu.initIndexEssay();
anzhiyu.changeTimeInEssay();
anzhiyu.removeBodyPaceClass();
anzhiyu.qrcodeCreate();
anzhiyu.changeTimeInAlbumDetail();
anzhiyu.reflashEssayWaterFall();
anzhiyu.sayhi();
anzhiyu.stopImgRightDrag();
anzhiyu.addNavBackgroundInit();
anzhiyu.setValueToBodyType();
anzhiyu.catalogActive();
anzhiyu.tagsPageActive();
anzhiyu.categoriesBarActive();
anzhiyu.topCategoriesBarScroll();
anzhiyu.switchRightClickMenuHotReview();
anzhiyu.getCustomPlayList();
anzhiyu.addEventListenerConsoleMusicList(false);
setTimeout(() => {
  if (typeof addFriendLinksInFooter === "function") {
    addFriendLinksInFooter();
  }
}, 200)</script><link rel="stylesheet" href="https://npm.elemecdn.com/anzhiyu-theme-static@1.1.4/icon/ali_iconfont_css.css"><canvas class="fireworks" mobile="true"></canvas><script src="https://npm.elemecdn.com/butterfly-extsrc@1.1.3/dist/fireworks.min.js"></script><link rel="stylesheet" href="https://npm.elemecdn.com/anzhiyu-theme-static@1.0.0/aplayer/APlayer.min.css" media="print" onload="this.media='all'"><script src="https://npm.elemecdn.com/anzhiyu-blog-static@1.0.1/js/APlayer.min.js"></script><script src="https://npm.elemecdn.com/hexo-anzhiyu-music@1.0.1/assets/js/Meting2.min.js"></script><script src="https://npm.elemecdn.com/pjax@0.2.8/pjax.min.js"></script><script>let pjaxSelectors = ["head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"]

var pjax = new Pjax({
  elements: 'a:not([target="_blank"])',
  selectors: pjaxSelectors,
  cacheBust: false,
  analytics: false,
  scrollRestoration: false
})

document.addEventListener('pjax:send', function () {
  // removeEventListener scroll 
  window.tocScrollFn && window.removeEventListener('scroll', window.tocScrollFn)
  window.scrollCollect && window.removeEventListener('scroll', scrollCollect)

  document.getElementById('rightside').style.cssText = "opacity: ''; transform: ''"
  
  if (window.aplayers) {
    for (let i = 0; i < window.aplayers.length; i++) {
      if (!window.aplayers[i].options.fixed) {
        window.aplayers[i].destroy()
      }
    }
  }

  typeof typed === 'object' && typed.destroy()

  //reset readmode
  const $bodyClassList = document.body.classList
  $bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode')
})

document.addEventListener('pjax:complete', function () {
  window.refreshFn()

  document.querySelectorAll('script[data-pjax]').forEach(item => {
    const newScript = document.createElement('script')
    const content = item.text || item.textContent || item.innerHTML || ""
    Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
    newScript.appendChild(document.createTextNode(content))
    item.parentNode.replaceChild(newScript, item)
  })

  GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()

  typeof chatBtnFn === 'function' && chatBtnFn()
  typeof panguInit === 'function' && panguInit()

  // google analytics
  typeof gtag === 'function' && gtag('config', '', {'page_path': window.location.pathname});

  // baidu analytics
  typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]);

  typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()

  // prismjs
  typeof Prism === 'object' && Prism.highlightAll()
})

document.addEventListener('pjax:error', (e) => {
  if (e.request.status === 404) {
    pjax.loadUrl('/404.html')
  }
})</script><script charset="UTF-8" src="https://npm.elemecdn.com/anzhiyu-theme-static@1.1.5/accesskey/accesskey.js"></script><div id="greetingBox"> </div><script>(()=>{
  const greetingBoxInfo = [{"greeting":"晚安😴","startTime":0,"endTime":5},{"greeting":"早上好鸭👋, 祝你一天好心情！","startTime":6,"endTime":9},{"greeting":"上午好👋, 状态很好，鼓励一下～","startTime":10,"endTime":10},{"greeting":"11点多啦, 在坚持一下就吃饭啦～","startTime":11,"endTime":11},{"greeting":"午安👋, 宝贝","startTime":12,"endTime":14},{"greeting":"🌈充实的一天辛苦啦！","startTime":14,"endTime":18},{"greeting":"19点喽, 奖励一顿丰盛的大餐吧🍔。","startTime":19,"endTime":19},{"greeting":"晚上好👋, 在属于自己的时间好好放松😌~","startTime":20,"endTime":24}];
  const greetingBoxDefault = "晚上好👋";
  //- 创建盒子
  let div = document.createElement("div");
  //- 设置ID
  div.id = "greeting";
  //- 设置class
  setTimeout(()=>{
    div.classList.add("shown");
  }, 1000)
  //- 插入盒子
  let greetingBox = document.querySelector("#greetingBox");
  greetingBox.appendChild(div);
  const nowTime = new Date().getHours();
  let greetings = greetingBoxDefault;
  for (let i = 0; i < greetingBoxInfo.length; i++) {
    if (nowTime >= greetingBoxInfo[i].startTime && nowTime <= greetingBoxInfo[i].endTime) {
      greetings = greetingBoxInfo[i].greeting;
      break;
    }
  }
  div.innerHTML = greetings
  setTimeout(()=>{
    div.classList.remove("shown");
    setTimeout(()=>{
      greetingBox.remove()
    }, 500)
  }, 3000)
})()</script></div></body></html>